package com.xiaomuedu.controller;

import java.util.List;

import com.jfinal.aop.Clear;
import com.jfinal.core.Controller;
import com.jfinal.core.JFinal;
import com.jfinal.upload.UploadFile;
import com.xiaomuedu.common.model.User;
/**
 * 
* <p>Title: UserController</p>
* <p>Description: </p>
* <p>Company: </p> 
* @author Administrator
* @date 2017年6月16日
 */
@Clear  //Clear注解可以消除全局拦截器的这个作用
public class UserController extends Controller {
	/**
	 * 直接访问user地址进入list.jsp
	 */
	public void index() {
//		把数据显示在界面上
		List<User> users=User.dao.find("select * from user");
//		拿到数据后传到前台 setAttr("users", users);
		System.out.println("得到数据"+users.size()+"条");
		render("list.jsp");
	}
	/**
	 * 访问user/form 地址进入form.jsp
	 */
	public void form(){
		Integer id=getParaToInt(0);
		if(id!=null&&id>0){
			setAttr("user", User.dao.findById(id));
		}
		render("form.jsp");
	}
	/**
	 * 数据提交
	 */
	public void submit() {
		User user=getModel(User.class,"user");//接收从前端的的表单传过来的user
		user.save();//保存user到数据库
//		刷新页面，重新获得user列表，以下两个方法皆可,但多用redirect方法
		redirect("/user");//重定向到use
//		index();//刷新到index()，就会把刚刚新加用户信息的再重新加一遍
	}
	public void update(){
		User user=getModel(User.class,"user");
		user.update();
		redirect("/user");
	}
	public void search(){
//		得到前台搜索框中的内容  searchContent:搜索內容:keywords:关键词;
		String searchContent=getPara("keywords");//作用是input 的 name属性;
		List<User> users=User.dao.find("select * from user where name like '%"+searchContent+"%' or remark like '%"+searchContent+"%'");
		setAttr("users", users);
		keepPara();//保存参数，一会儿返回到页面
		System.out.println("得到数据"+users.size()+"个");
		render("list.jsp");
	}
	public void edit(){
		form();
	}
	public void del(){
		User.dao.deleteById(getPara(0));
		redirect("/user");
	}
	
	public void upload(){
		UploadFile file=getFile("img");
		renderHtml("<strong>上传成功</strong><img src='"+JFinal.me().getConstants().getBaseUploadPath()+"/"+file.getFileName()+"'/>");
	}
	
	public void download(){
		renderFile("1.txt");
	}
	
	public void renderftl(){
		setAttr("msg", "hello Freemarker");
		render("user");
	}
	
	public void testUrlParaSeparator(){
		setAttr("param1", getPara(0));
		setAttr("param2", getPara(1));
		render("param.jsp");
	}
}
